<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Scatter 3D - ECHARTS-GL</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes"> <!-- Fullscreen Landscape on iOS -->
    <link rel="stylesheet" href="./common.css">
</head>
<body>
<div id="main"></div>
<script src="../node_modules/echarts/dist/echarts.js"></script>
<script src="../dist/echarts-gl.js"></script>
<script src="lib/jquery.min.js"></script>
<script src="js/commonUI.js"></script>
<script>
    var chart = echarts.init(document.getElementById('main'));

    $.getJSON('./data/population.json', function (data) {

        data = data.filter(function (dataItem) {
            return dataItem[2] > 0;
        }).map(function (dataItem) {
            return [dataItem[0], dataItem[1], Math.sqrt(dataItem[2])];
        });

        chart.setOption({
            visualMap: {
                show: false,
                min: 0,
                max: 60,
                inRange: {
                    symbolSize: [1.0, 10.0]
                }
            },
            globe: {
                environment: 'asset/starfield.jpg',

                heightTexture: 'asset/bathymetry_bw_composite_4k.jpg',

                displacementScale: 0.2,
                displacementQuality: 'high',

                globeOuterRadius: 100,

                baseColor: '#000',

                shading: 'realistic',
                realisticMaterial: {
                    roughness: 0.2,
                    metalness: 0
                },

                postEffect: {
                    enable: true
                },
                temporalSuperSampling: {
                    enable: true
                },
                light: {
                    ambient: {
                        intensity: 0
                    },
                    main: {
                        intensity: 0.1,
                        shadow: false
                    },
                    ambientCubemap: {
                        texture: 'asset/lake.hdr',
                        exposure: 1,
                        diffuseIntensity: 0.5,
                        specularIntensity: 2
                    }
                },
                viewControl: {
                    autoRotate: false
                },

                silent: true
            },
            series: [{
                type: 'scatter3D',
                coordinateSystem: 'globe',
                blendMode: 'lighter',
                symbolSize: 2,
                itemStyle: {
                    color: 'rgb(50, 50, 150)',
                    opacity: 1
                },
                data: data
            }]
        });
    });

    window.addEventListener('resize', function () {
        chart.resize();
    });

</script>
</body>
</html>
